{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5c29226b",
   "metadata": {},
   "source": [
    "## 反激电源计算"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9d35789d",
   "metadata": {},
   "source": [
    "### 头文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cd5c4e39",
   "metadata": {},
   "outputs": [],
   "source": [
    "import math as m\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import control as ctrl\n",
    "from scipy.interpolate import interp1d\n",
    "from sympy import symbols, Eq, solve, I\n",
    "import json\n",
    "from pathlib import Path\n",
    "from json_pre import calculate_expression\n",
    "from json_pre import load_core_parameters"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "50afa236",
   "metadata": {},
   "source": [
    "### 输入参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dbdfe572",
   "metadata": {},
   "outputs": [],
   "source": [
    "V_IN = 220  # 常规输入电压 (V)\n",
    "V_AC_MIN = 85  # 最小输入电压 (V)\n",
    "V_AC_MAX = 265  # 最大输入电压 (V)\n",
    "V_OUT = 24  # 输出电压 (V)\n",
    "F_SW = 100e3  # 开关频率 (Hz)\n",
    "P_OUT = 120  # 输出功率 (W)\n",
    "EFFICIENCY = 0.85  # 效率\n",
    "P_IN = P_OUT / EFFICIENCY  # 输入功率 (W)\n",
    "V_OR = 100 #反射电压 (V)\n",
    "V_DS = 1.7  # MOSFET 导通电压 (V)\n",
    "K_RP = 0.8 # 电流脉动系数\n",
    "V_F = 0.7  # 二极管正向压降 (V)\n",
    "K_O = 0.4 #反激变压器窗口填充系数\n",
    "B_W = 0.2 # 变压器的磁通量(T) 通常在0.2-0.4T之间\n",
    "B_MAX = 0.2 # 变压器的最大磁通密度 (mT)\n",
    "K_JP = 3.95 # 初级电流密度系数\n",
    "K_JS = 6 # 次级电流密度系数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e0b5d836",
   "metadata": {},
   "source": [
    "### 单相桥式整流滤波电路"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "916664f6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最小整流电压 V_BULK_MIN: 120.21\n",
      "最大整流电压 V_BULK_MAX: 374.77\n",
      "最大输入电流 I_AC_MAX: 1.66\n"
     ]
    }
   ],
   "source": [
    "V_BUS = V_IN * m.sqrt(2)  # 整流后电压\n",
    "V_BULK_MIN = V_AC_MIN * m.sqrt(2)  # 最小整流电压\n",
    "V_BULK_MAX = V_AC_MAX * m.sqrt(2)  # 最大整流电压\n",
    "I_AC_MAX = P_IN / V_AC_MIN  # 最大输入电流\n",
    "\n",
    "print(\"最小整流电压 V_BULK_MIN: %.2f\" % V_BULK_MIN)\n",
    "print(\"最大整流电压 V_BULK_MAX: %.2f\" % V_BULK_MAX)\n",
    "print(\"最大输入电流 I_AC_MAX: %.2f\" % I_AC_MAX)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3691c65b",
   "metadata": {},
   "source": [
    "### 输入电容"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c663572c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输入电容 C_in = 316.18uF\n"
     ]
    }
   ],
   "source": [
    "C_in = (2 * P_IN * (0.25 + 1 / np.pi * np.arcsin(75 / m.sqrt(2) / V_AC_MIN))) / (\n",
    "    (2 * m.pow(V_AC_MIN, 2) - m.pow(75, 2)) * 47\n",
    ")\n",
    "print(\"输入电容 C_in = %.2fuF\" % (C_in * 1e6))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "224a634c",
   "metadata": {},
   "source": [
    "### 变压器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1ddfd2f6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最大占空比 D_MAX = 0.46\n",
      "220V占空比 D_NOM = 0.24\n",
      "满载输入平均电流 I_AVG = 1.17 A\n",
      "初级峰值输入电流 I_PPK = 4.28 A\n",
      "脉动电流 I_RIPPLE = 3.42 A\n",
      "初级有效电流 I_PRMS = 1.86 A\n",
      "初级励磁电感 L_P = 148.72 uH\n",
      "匝数比 N_PS = 4.05\n",
      "磁芯AP值 A_P = 0.5235 cm^4\n"
     ]
    }
   ],
   "source": [
    "# 最大占空比计算\n",
    "D_MAX = V_OR / (V_OR + V_BULK_MIN - V_DS)\n",
    "print(\"最大占空比 D_MAX = %.2f\" % D_MAX)\n",
    "\n",
    "# 220V占空比计算\n",
    "D_NOM = V_OR / (V_OR + V_BUS - V_DS)\n",
    "print(\"220V占空比 D_NOM = %.2f\" % D_NOM)\n",
    "\n",
    "# 满载输入平均电流\n",
    "I_AVG = P_IN / V_BULK_MIN\n",
    "print(\"满载输入平均电流 I_AVG = %.2f A\" % I_AVG)\n",
    "\n",
    "# 初级峰值输入电流\n",
    "I_PPK = I_AVG / ((1 - 0.5 * K_RP) * D_MAX)\n",
    "print(\"初级峰值输入电流 I_PPK = %.2f A\" % I_PPK)\n",
    "\n",
    "# 脉动电流\n",
    "I_RIPPLE = I_PPK * K_RP\n",
    "print(\"脉动电流 I_RIPPLE = %.2f A\" % I_RIPPLE)\n",
    "\n",
    "# 初级有效电流\n",
    "I_PRMS = I_PPK * m.sqrt(D_MAX * (pow(K_RP, 2) / 3 - K_RP + 1))\n",
    "print(\"初级有效电流 I_PRMS = %.2f A\" % I_PRMS)\n",
    "\n",
    "# 初级励磁电感\n",
    "L_P = (P_OUT / (I_PPK * I_PPK * K_RP * (1 - 0.5 * K_RP) * F_SW)) * (\n",
    "    (0.5 * (1 - EFFICIENCY) + EFFICIENCY) / EFFICIENCY\n",
    ")\n",
    "L_P_uH = L_P * 1e6  # 转换为微亨\n",
    "print(\"初级励磁电感 L_P = %.2f uH\" % L_P_uH)\n",
    "\n",
    "# 匝数比\n",
    "N_PS = D_MAX / (1 - D_MAX) * (V_BULK_MIN - V_DS) / (V_OUT + V_F)\n",
    "print(\"匝数比 N_PS = %.2f\" % N_PS)\n",
    "\n",
    "# 磁芯AP值\n",
    "A_P = pow((L_P * I_PPK * I_PPK * 1e2) / (B_W * K_O * K_JS), 1.14)\n",
    "print(\"磁芯AP值 A_P = %.4f cm^4\" % A_P)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45945530",
   "metadata": {},
   "source": [
    "#### 磁芯选择"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "070867a0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "磁芯有效截面积 Ae = 144.50 mm^2\n",
      "磁芯窗口面积 Aw = 165.9000 mm^2\n",
      "磁芯有效面积 AP = 2.3973 cm^4\n",
      "磁芯参数满足要求AP=2.3973 >= 2*A_P=1.0470\n"
     ]
    }
   ],
   "source": [
    "# 磁芯参数计算\n",
    "\n",
    "# 加载参数文件\n",
    "json_path = Path(\"BYDZ_EECore.json\")\n",
    "core_data = load_core_parameters(json_path)\n",
    "\n",
    "Core_Type = \"EE40\"\n",
    "params = core_data[Core_Type]\n",
    "\n",
    "Ae = params[\"Ae\"]  # 磁芯有效截面积 (mm^2)\n",
    "print(f\"磁芯有效截面积 Ae = {Ae:.2f} mm^2\")\n",
    "Aw = params[\"Aw\"]  # 磁芯窗口面积 (mm^2)\n",
    "print(f\"磁芯窗口面积 Aw = {Aw:.4f} mm^2\")\n",
    "AP = Ae * 1e-2 * Aw * 1e-2  # 磁芯有效面积 (cm^4)\n",
    "print(f\"磁芯有效面积 AP = {AP:.4f} cm^4\")\n",
    "\n",
    "if AP <= (2 * A_P):\n",
    "    raise ValueError(f\"磁芯参数不满足：AP={AP:.4f} ≤ 2*A_P={2 * A_P:.4f}\")\n",
    "print(f\"磁芯参数满足要求AP={AP:.4f} >= 2*A_P={2 * A_P:.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c1e3e599",
   "metadata": {},
   "source": [
    "#### 变压器绕组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "563cf737",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "初级匝数 N_P = 51\n",
      "次级匝数 N_S = 13\n",
      "辅助绕组匝数 N_S1 = 10\n"
     ]
    }
   ],
   "source": [
    "# N_P_0 = (V_BULK_MIN*D_MAX)/(Ae*1e-6*B_MAX*F_SW) # 初级匝数\n",
    "\n",
    "N_P_0 = (V_BULK_MIN * m.sqrt(D_MAX) * 1e4) / (B_MAX * F_SW * K_RP)  # 初级匝数\n",
    "# N_P_0 =  23\n",
    "# print(\"初级匝数 N_P_0 = %.4f\" % N_P_0)\n",
    "N_S_0 = N_P_0 / N_PS  # 次级匝数\n",
    "N_S1_0 = N_S_0 * 18 / V_OUT  # 15V辅助绕组匝数\n",
    "\n",
    "# 实际选取匝数\n",
    "N_P = m.ceil(N_P_0)  # 初级匝数\n",
    "N_S = m.ceil(N_S_0)  # 次级匝数\n",
    "N_S1 = m.ceil(N_S1_0)  # 辅助绕组匝数\n",
    "\n",
    "V_BIAS = V_OUT * N_S1 / N_S\n",
    "\n",
    "if V_BIAS < 25:\n",
    "    print(\"初级匝数 N_P = %.d\" % N_P)\n",
    "    print(\"次级匝数 N_S = %.d\" % N_S)\n",
    "    print(\"辅助绕组匝数 N_S1 = %.d\" % N_S1)\n",
    "else:\n",
    "    print(\"匝数选取不合适，请重新计算！\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9310ce5a",
   "metadata": {},
   "source": [
    "确定绕组漆包线径"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "c8b89edf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "趋肤深度 D_m = 0.4181 mm\n",
      "次级峰值电流 I_SPK = 16.7792 A\n",
      "次级有效电流 I_SRMS = 7.9444 A\n"
     ]
    }
   ],
   "source": [
    "# 趋肤深度计算（经验公式）\n",
    "D_m = 2 * 66.1e-3 / m.sqrt(F_SW)\n",
    "print(\"趋肤深度 D_m = %.4f mm\" % (D_m * 1e3))\n",
    "\n",
    "# 次级峰值电流\n",
    "I_SPK = I_PPK * N_P / N_S\n",
    "print(\"次级峰值电流 I_SPK = %.4f A\" % I_SPK)\n",
    "\n",
    "# 次级有效电流\n",
    "I_SRMS = I_SPK * m.sqrt((1 - D_MAX) * (pow(K_RP, 2) / 3 - K_RP + 1))\n",
    "print(\"次级有效电流 I_SRMS = %.4f A\" % I_SRMS)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "acb8bc94",
   "metadata": {},
   "source": [
    "选择0.25mm的线，电流密度一般为4~6A/mm^2，初级取4A/mm^2，次级取5A/mm^2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "1944015a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "初级线圈电流密度 J_p = 2.3560 A/mm^2\n",
      "次级线圈电流密度 J_s = 5.0309 A/mm^2\n"
     ]
    }
   ],
   "source": [
    "D_p = 0.4  # 初级线圈直径 (mm)\n",
    "P_p = 2  # 初级线圈并联数\n",
    "J_p = I_PRMS / ((m.pi * pow(D_p, 2) / 4) * m.pi * P_p)  # 初级线圈电流密度 (A/mm^2)\n",
    "print(\"初级线圈电流密度 J_p = %.4f A/mm^2\" % J_p)\n",
    "\n",
    "D_s = 0.4  # 次级线圈直径 (mm)\n",
    "P_s = 4  # 次级线圈并联数\n",
    "J_s = I_SRMS / ((m.pi * pow(D_s, 2) / 4) * m.pi * P_s)  # 次级线圈电流密度 (A/mm^2)\n",
    "print(\"次级线圈电流密度 J_s = %.4f A/mm^2\" % J_s)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f07964a",
   "metadata": {},
   "source": [
    "在选定变压器原副边绕组后，需核算变压器是否在选定线的绕组时，能否绕制得下，通过计算所有绕组截面积之和与变压器骨架窗口之得占比来判定。计算所有绕组截面积占变压器窗口的系数Kw"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "55e300a6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "磁芯窗口填充系数 K_w = 0.1166\n"
     ]
    }
   ],
   "source": [
    "K_w = (\n",
    "    pow(D_p, 2) / 4 * m.pi * P_p * N_P + pow(D_s, 2) / 4 * m.pi * P_s * N_S\n",
    ") / Aw  # 磁芯窗口填充系数\n",
    "print(\"磁芯窗口填充系数 K_w = %.4f\" % K_w)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eaebe224",
   "metadata": {},
   "source": [
    "通常变压器绕组设计时，由于绕组的线具有一定的绝缘层，同时，绕组过程中也会增加绝缘胶带，挡墙等，为了保证绕组能绕下，且具有较好的经济性，窗口系数一般指定在0.1~0.3之间较为合适，作为初学的稳定性考虑，经济性先不作为主要考虑，因此上述计算的窗口系数证明绕组选择相对合理。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f609ef1",
   "metadata": {},
   "source": [
    "### MOSFET"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "03089552",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MOSFET电压 V_mos = 471.67 V\n",
      "MOSFET选定电压应不小于 1.5*V_mos = 707.50 V\n"
     ]
    }
   ],
   "source": [
    "V_mos = (V_F + V_OUT) * N_P / N_S + V_BULK_MAX\n",
    "print(\"MOSFET电压 V_mos = %.2f V\" % V_mos)\n",
    "\n",
    "# 1.5倍裕量\n",
    "print(\"MOSFET选定电压应不小于 1.5*V_mos = %.2f V\" % (V_mos * 1.5))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15f4a1d4",
   "metadata": {},
   "source": [
    "#### 二极管"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "917a399a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "次级二极管电压 V_dio = 119.53 V\n",
      "次级二极管选定电压应不小于 1.5*V_dio = 179.29 V\n",
      "辅助绕组二极管电压 V_dio1 = 97.48 V\n",
      "辅助绕组二极管选定电压应不小于 1.3*V_dio1 = 126.73 V\n"
     ]
    }
   ],
   "source": [
    "# 计算次级二极管电压\n",
    "V_dio = V_OUT+ V_BULK_MAX*N_S/N_P\n",
    "print(\"次级二极管电压 V_dio = %.2f V\" % V_dio)\n",
    "\n",
    "#1.5倍裕量\n",
    "print(\"次级二极管选定电压应不小于 1.5*V_dio = %.2f V\" % (V_dio*1.5))\n",
    "\n",
    "# 计算辅助绕组二极管电压\n",
    "V_dio1 = V_OUT+ V_BULK_MAX*N_S1/N_P\n",
    "print(\"辅助绕组二极管电压 V_dio1 = %.2f V\" % V_dio1)\n",
    "\n",
    "#1.3倍裕量\n",
    "print(\"辅助绕组二极管选定电压应不小于 1.3*V_dio1 = %.2f V\" % (V_dio1*1.3))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3dae7521",
   "metadata": {},
   "source": [
    "#### 输出电容\n",
    "假定要设计的反激电路输出纹波电压 ΔVout为100mV，则在输出满载时，反激的输出负载电阻Rout为Vout/Iout=2.4R。再计算出电容数值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "4429a73a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输出电阻 R_OUT = 4.80 Ohm\n",
      "输出电容 C_out = 439.23 uF\n"
     ]
    }
   ],
   "source": [
    "R_OUT = V_OUT * V_OUT / P_OUT\n",
    "I_OUT = P_OUT / V_OUT\n",
    "Nps = N_P / N_S\n",
    "print(\"输出电阻 R_OUT = %.2f Ohm\" % R_OUT)\n",
    "\n",
    "V_OUT_delta = 50e-3  # 输出电压纹波 (V)\n",
    "# 输出电容计算\n",
    "C_out = (\n",
    "    I_OUT * (Nps * V_OUT / (V_BULK_MIN + Nps * V_OUT)) / (V_OUT_delta * F_SW)\n",
    ")  # 输出电容\n",
    "print(\"输出电容 C_out = %.2f uF\" % (C_out * 1e6))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c1f630cf",
   "metadata": {},
   "source": [
    "#### 电流检测网络"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "68c580ed",
   "metadata": {},
   "outputs": [],
   "source": [
    "V_offset = "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3745c748",
   "metadata": {},
   "source": [
    "#### RCD\n",
    "先假设变压器的初级漏感Lk在激磁电感Lp的1%之内，计算出Lk = 1.5uH。假设电容的充电时间很短可以忽略不计，由于电容的放电是线性的，并且假设开关管的工作时最大电压Vmosmax不超过800V，再留个冗余，则可以得到钳位电容上的电压Vclamp："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "83754117",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "反激变压器的钳位电压 V_clamp = 265.2334 V\n",
      "钳位电阻 R_c = 32.8221 kOhm\n",
      "钳位电容 C_c = 609.3464 pF\n",
      "钳位功率 P_clamp = 2.1836 W\n"
     ]
    }
   ],
   "source": [
    "L_k = L_P*0.01# 反激变压器的漏感值 (H)\n",
    "# L_k = 1.5e-6  # 反激变压器的漏感值 (H)\n",
    "V_mosmax = 800  # MOSFET的最大电压 (V)\n",
    "\n",
    "# 反激变压器的钳位电压 (V)\n",
    "V_clamp = 0.8 * V_mosmax - V_BULK_MAX\n",
    "print(\"反激变压器的钳位电压 V_clamp = %.4f V\" % V_clamp)\n",
    "\n",
    "# 钳位电阻计算\n",
    "R_c = (2 * V_clamp * (V_clamp - N_P / N_S * (V_F + V_OUT))) / (\n",
    "    L_k * pow(I_PPK, 2) * F_SW\n",
    ")  # 钳位电阻 (Ohm)\n",
    "print(\"钳位电阻 R_c = %.4f kOhm\" % (R_c / 1000))\n",
    "\n",
    "# 钳位电容计算\n",
    "C_c = (2 * V_clamp) / (R_c * F_SW * V_clamp)  # 钳位电容 (F)\n",
    "print(\"钳位电容 C_c = %.4f pF\" % (C_c * 1e12))\n",
    "\n",
    "# 钳位功率\n",
    "P_clamp = (\n",
    "    0.5 * F_SW * L_k * pow(I_PPK, 2) * (1 + V_OR / (V_clamp - V_OR))\n",
    ")  # 钳位功率 (W)\n",
    "print(\"钳位功率 P_clamp = %.4f W\" % P_clamp)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b26f090",
   "metadata": {},
   "source": [
    "### 将所有结果联合输出"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "2fbf116f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "变压器参数：\n",
      "磁芯类型 Core_Type = EE40\n",
      "初级匝数 N_P = 51\n",
      "次级匝数 N_S = 13\n",
      "18V辅助绕组匝数 N_S1 = 10\n",
      "\n",
      "初级电感 L_P = 148.7213 uH\n",
      "初级线径 D_P = 0.40 mm\n",
      "初级线圈并联数 P_P = 2\n",
      "次级线径 D_S = 0.40 mm\n",
      "次级线圈并联数 P_S = 4\n",
      "\n",
      "------------------------------------------------------------------\n",
      "\n",
      "MOSFET参数：\n",
      "MOSFET选定电压应不小于 1.5*V_mos = 707.4999 V\n",
      "\n",
      "------------------------------------------------------------------\n",
      "\n",
      "次级二极管参数：\n",
      "次级二极管选定电压应不小于 1.5*V_dio = 179.2931 V\n",
      "\n",
      "------------------------------------------------------------------\n",
      "\n",
      "辅助绕组二极管参数：\n",
      "辅助绕组二极管选定电压应不小于 1.5*V_dio1 = 146.2255 V\n",
      "\n",
      "------------------------------------------------------------------\n",
      "\n",
      "RCD钳位参数：\n",
      "钳位电阻 R_c = 32.5423 kOhm\n",
      "钳位电容 C_c = 614.5855 pF\n",
      "嵌位功率 P_clamp = 2.2023 W\n",
      "\n",
      "------------------------------------------------------------------\n",
      "\n",
      "输出电容参数：\n",
      "输出电容 C_out = 228.8244 uF\n",
      "\n",
      "------------------------------------------------------------------\n",
      "\n",
      "正常占空比 D_NOM = 0.2442\n"
     ]
    }
   ],
   "source": [
    "# 打印输出结果\n",
    "# 打印变压器结果\n",
    "print(\"变压器参数：\")\n",
    "print(\"磁芯类型 Core_Type = %s\" % Core_Type)\n",
    "print(\"初级匝数 N_P = %d\" % N_P)\n",
    "print(\"次级匝数 N_S = %d\" % N_S)\n",
    "print(\"18V辅助绕组匝数 N_S1 = %d\" % N_S1)\n",
    "print(\"\")\n",
    "print(\"初级电感 L_P = %.4f uH\" % L_P_uH)\n",
    "print(\"初级线径 D_P = %.2f mm\" % D_p)\n",
    "print(\"初级线圈并联数 P_P = %d\" % P_p)\n",
    "print(\"次级线径 D_S = %.2f mm\" % D_s)\n",
    "print(\"次级线圈并联数 P_S = %d\" % P_s)\n",
    "print(\"\")\n",
    "print(\"------------------------------------------------------------------\")\n",
    "print(\"\")\n",
    "\n",
    "# 打印MOSFET结果\n",
    "print(\"MOSFET参数：\")\n",
    "# print(\"MOSFET电压 V_mos = %.4f V\" % V_mos)\n",
    "print(\"MOSFET选定电压应不小于 1.5*V_mos = %.4f V\" % (V_mos * 1.5))\n",
    "print(\"\")\n",
    "print(\"------------------------------------------------------------------\")\n",
    "print(\"\")\n",
    "\n",
    "# 打印次级二极管结果\n",
    "print(\"次级二极管参数：\")\n",
    "# print(\"次级二极管电压 V_dio = %.4f V\" % V_dio)\n",
    "print(\"次级二极管选定电压应不小于 1.5*V_dio = %.4f V\" % (V_dio * 1.5))\n",
    "print(\"\")\n",
    "print(\"------------------------------------------------------------------\")\n",
    "print(\"\")\n",
    "\n",
    "# 打印辅助绕组二极管结果\n",
    "print(\"辅助绕组二极管参数：\")\n",
    "# print(\"辅助绕组二极管电压 V_dio1 = %.4f V\" % V_dio1)\n",
    "print(\"辅助绕组二极管选定电压应不小于 1.5*V_dio1 = %.4f V\" % (V_dio1 * 1.5))\n",
    "print(\"\")\n",
    "print(\"------------------------------------------------------------------\")\n",
    "print(\"\")\n",
    "\n",
    "# 打印RCD钳位结果\n",
    "print(\"RCD钳位参数：\")\n",
    "print(\"钳位电阻 R_c = %.4f kOhm\" % (R_c / 1000))\n",
    "print(\"钳位电容 C_c = %.4f pF\" % (C_c * 1e12))\n",
    "print(\"嵌位功率 P_clamp = %.4f W\" % P_clamp)\n",
    "print(\"\")\n",
    "print(\"------------------------------------------------------------------\")\n",
    "print(\"\")\n",
    "\n",
    "# 打印输出电容结果\n",
    "print(\"输出电容参数：\")\n",
    "print(\"输出电容 C_out = %.4f uF\" % (C_out * 1e6))\n",
    "print(\"\")\n",
    "print(\"------------------------------------------------------------------\")\n",
    "print(\"\")\n",
    "\n",
    "print(\"正常占空比 D_NOM = %.4f\" % D_NOM)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "758f751a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "fz = 28218.9615\n",
      "frz = 50812.5040\n",
      "所有0 dB穿越点及其相位裕度:\n",
      "穿越频率: 598.39 Hz, 相位裕度: 95.44°\n",
      "穿越频率: 2387507.07 Hz, 相位裕度: 90.55°\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "Rload = R_OUT  # 负载电阻 (Ohm)\n",
    "C_out = 470e-6*2  # 实际输出电容 (F)\n",
    "\n",
    "Nps = N_P / N_S  # 实际匝数比\n",
    "Nt = 1 / Nps\n",
    "Rsense = 1 / 5\n",
    "Esr = 0.006\n",
    "wz = 1 / Esr / C_out\n",
    "print(\"fz = %.4f\" % (wz/2/np.pi))\n",
    "wrz = Rload * (1 - D_MAX ) * (1 - D_MAX ) / Nt / Nt / D_MAX  / L_P\n",
    "print(\"frz = %.4f\" % (wrz/2/np.pi))\n",
    "wp = (1+D_MAX ) / Rload/C_out\n",
    "Ak = 1 / 3\n",
    "s = ctrl.TransferFunction.s\n",
    "Gvv = (\n",
    "    Ak\n",
    "    * Rload\n",
    "    * Nps\n",
    "    * (1 - D_MAX )\n",
    "    * (1 + s / wz)\n",
    "    * (1 - s / wrz)\n",
    "    / ((1 + D_MAX ) * Rsense * (1 + s / wp))\n",
    ")\n",
    "\n",
    "freq_Hz = np.logspace(1, 7, 1000)\n",
    "omega = 2 * np.pi * freq_Hz\n",
    "\n",
    "# 计算频率响应\n",
    "mag, phase, omega = ctrl.frequency_response(Gvv, omega=omega)\n",
    "mag_db = 20 * np.log10(mag)\n",
    "phase_deg = np.degrees(phase)\n",
    "\n",
    "# 查找所有0 dB穿越点\n",
    "def find_zero_crossings(freq, mag_db):\n",
    "    crossings = []\n",
    "    for i in range(len(mag_db)-1):\n",
    "        if mag_db[i] * mag_db[i+1] < 0:\n",
    "            f_interp = interp1d(mag_db[i:i+2], freq[i:i+2], kind='linear')\n",
    "            cross_freq = f_interp(0)\n",
    "            crossings.append(cross_freq)\n",
    "    return crossings\n",
    "\n",
    "zero_crossings_Hz = find_zero_crossings(freq_Hz, mag_db)\n",
    "\n",
    "# 计算相位裕度\n",
    "phase_margins = []\n",
    "for cross_freq_Hz in zero_crossings_Hz:\n",
    "    idx = np.argmin(np.abs(freq_Hz - cross_freq_Hz))\n",
    "    pm = phase_deg[idx] + 180\n",
    "    phase_margins.append(pm)\n",
    "\n",
    "# 输出结果\n",
    "print(\"所有0 dB穿越点及其相位裕度:\")\n",
    "for freq, pm in zip(zero_crossings_Hz, phase_margins):\n",
    "    print(f\"穿越频率: {freq:.2f} Hz, 相位裕度: {pm:.2f}°\")\n",
    "\n",
    "# 绘制 Bode 图并显示稳定裕度\n",
    "plt.figure()\n",
    "ctrl.bode_plot(Gvv, omega=omega, dB=True, Hz=True, display_margins=True)\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "72684fee",
   "metadata": {},
   "source": [
    "由上图，有两个穿越点，3265.07 Hz和5910782.34 Hz，在高频段增益曲线上翘，是个不稳定系统"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "25c45e85",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C_COMP_P = 149.6056 pF\n"
     ]
    }
   ],
   "source": [
    "R_COM_P = 3000\n",
    "C_COMP_P = 1/(2*np.pi*wz*R_COM_P)\n",
    "print(\"C_COMP_P = %.4f pF\" % (C_COMP_P*1e12))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2039925d",
   "metadata": {},
   "source": [
    "电压环补偿，将RCOMP假设为1000 Ohm，然后用之前计算的wz得出CCOMPP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "068e5e82",
   "metadata": {},
   "outputs": [],
   "source": [
    "#将上面的输出手动指定为实际值\n",
    "# C_COMP_P = (300)*1e-12 # 反馈电容 (F)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "c93c07e0",
   "metadata": {},
   "outputs": [],
   "source": [
    "R_FB = 1000\n",
    "Gvp = R_COM_P/(R_FB*(1+s*R_COM_P*C_COMP_P))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "11378b5b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "|Gvv| at 20000.0 Hz = 0.06845535800704576\n",
      "9841.93058769892\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "frequency = 20e3  # Hz\n",
    "ss = 1j * 2 * np.pi * frequency\n",
    "sss = 1 * I * 2 * np.pi * frequency\n",
    "CTR = 0.5  # 光耦原副边电流比\n",
    "R_pd = 1000  # 光耦副边下拉电阻\n",
    "R_LED = symbols(\"R_LED\", complex=True)  # 光耦LED电阻\n",
    "\n",
    "\n",
    "# 代入传递函数公式\n",
    "numerator = Ak * Rload * Nps * (1 - D_MAX) * (1 + ss / wz) * (1 - ss / wrz)\n",
    "denominator = (1 + D_MAX) * Rsense * (1 + ss / wp)\n",
    "Gvv_value = numerator / denominator\n",
    "\n",
    "# 输出结果\n",
    "magnitude = np.abs(Gvv_value)\n",
    "print(f\"|Gvv| at {frequency} Hz = {magnitude}\")\n",
    "\n",
    "Got_ = V_OUT * 1000 / R_LED * (1 + sss * 1000 * 0.1e-6 / (sss * 1000 * 0.1e-6))\n",
    "Gvp_ = R_COM_P / (R_FB * (1 + sss * R_COM_P * C_COMP_P))\n",
    "equation = Eq(Got_ * Gvp_, (1 / Gvv_value))\n",
    "solution = solve(equation, R_LED)\n",
    "print(np.abs(solution[0]))\n",
    "R_LED_VALUE = np.abs(solution[0])\n",
    "# R_LED_VALUE = 1.2e3\n",
    "\n",
    "Got = V_OUT * 1000 / 11.7e3 * (1 + s * 1000 * 0.1e-6 / (s * 1000 * 0.1e-6))\n",
    "Gvp = R_COM_P / (R_FB * (1 + s * R_COM_P * C_COMP_P))\n",
    "Gs = Got * Gvp * Gvv\n",
    "plt.figure()\n",
    "ctrl.bode_plot(Gs, omega=omega, dB=True, Hz=True, display_margins=True)\n",
    "plt.grid(True)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "1f165285",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "光耦及TL431参数：\n",
      "光耦LED电阻 R_LED = 9841.9306 Ohm\n",
      "光耦副边下拉电阻 R_pd = 1000.0000 Ohm\n",
      "光耦原副边电流比 CTR = 0.5000\n",
      "反馈电阻 R_FB = 1000.0000 Ohm\n",
      "UC4832参数：\n",
      "补偿电阻 R_COM_P = 3.0000 kOhm\n",
      "补偿电容 C_COMP_P = 149.6056 pF\n"
     ]
    }
   ],
   "source": [
    "# 环路补偿输出\n",
    "print(\"光耦及TL431参数：\")\n",
    "print(\"光耦LED电阻 R_LED = %.4f Ohm\" % R_LED_VALUE)\n",
    "print(\"光耦副边下拉电阻 R_pd = %.4f Ohm\" % R_pd)\n",
    "print(\"光耦原副边电流比 CTR = %.4f\" % CTR)\n",
    "print(\"反馈电阻 R_FB = %.4f Ohm\" % R_FB)\n",
    "\n",
    "print(\"UC4832参数：\")\n",
    "# print(\"补偿电容 C_COMP_P = %.4f pF\" % (C_COMP_P * 1e12))\n",
    "# print(\"补偿电阻 R_COM_P = %.4f Ohm\" % R_COM_P)\n",
    "print(\"补偿电阻 R_COM_P = %.4f kOhm\" % (R_COM_P / 1000))\n",
    "print(\"补偿电容 C_COMP_P = %.4f pF\" % (C_COMP_P * 1e12))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "20ffde94",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "带宽 f_BW = 12.7031 kHz\n"
     ]
    }
   ],
   "source": [
    "f_BW = wrz/(2 * np.pi)/4\n",
    "print(\"带宽 f_BW = %.4f kHz\" % (f_BW/1e3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "da448f53",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
